home *** CD-ROM | disk | FTP | other *** search
/ ShareWare OnLine 2 / ShareWare OnLine Volume 2 (CMS Software)(1993).iso / os2 / wptool07.zip / CHECKINI.TXT < prev    next >
Text File  |  1993-02-24  |  14KB  |  378 lines

  1.                          === DISCLAIMER ===
  2.  
  3.  
  4. I allow you to use and distribute CHECKINI freely under the
  5. condition that I am in no way responsible for any damage or
  6. loss you may suffer. 
  7.  
  8.  
  9. Henk Kelder, Fidonet 2:512/47.339
  10.  
  11.  
  12.            === IMPORTANT - READ THIS FIRST !===
  13.  
  14. You should take care when using this program on new versions of
  15. OS/2 since this program interprets data from the ini-files. 
  16. The internal structure of this data can change, and the
  17. program might fail or even corrupt information
  18. This was the case with the new OS/2 2.00.1 (or 2.01) version as well
  19. as the Service Pack release in october 1992.
  20.  
  21. The best way to test this is run checkini WITHOUT the /C option! 
  22. (Optionally use the /W option to write out all checkini's findings and 
  23. inspect the logfile)
  24. If Checkini reports un unusual amount of errors, the internal structure of
  25. the workplace shells data inside the ini-files might have changed. 
  26. Look in CHECKINI's logfile at the  
  27. "PM_Abstract:Objects & PM_Abstract:FldrContents" section with special care.
  28. If this section contains a lot of errors while your workplace shell seems to
  29. function properly there might have been a change, so:
  30.  
  31.  
  32.          DO NOT USE CHECKINI.EXE or WPSBKP.EXE then!
  33.          ===========================================
  34.  
  35. (see DANGER.TXT about this)
  36. Note: The warning above does not apply to WPSREST.EXE and COPYINI.EXE!
  37.  
  38.  
  39.  
  40. CHECKINI checks for, and optionally corrects, some problems in
  41. OS2.INI and OS2SYS.INI. CHECKINI only looks at information
  42. regarding the workplace shell. 
  43. The make full use of CHECKINI read this document to require
  44. information about what CHECKINI does.
  45.  
  46. CHECKINI does not work when Presentation manager has not been started.
  47.  
  48.                     ==== DESCRIPTION ===
  49.  
  50.  
  51. The main reason for CHECKINI is the growth that the both .INI
  52. files tend to have if one uses the Workplace shell heavelly.
  53. Using CHECKINI in conjunction with COPYINI helps to reduce the
  54. INI files sizes, which in turn should increase the workplace
  55. shells performance.
  56.  
  57. Also CHECKINI helps to determine some possible cause's for
  58. workplace shell failures like loosing workplace shell objects,
  59. or situations in which a program object looses the proper
  60. executable name or current directory. Obviously, the real
  61. cause for these problems must be in the workplace shell
  62. itself, CHECKINI however could help you to determine the
  63. degree of damage that has been done.
  64.  
  65.  
  66. PM_Workplace:Handles
  67.  
  68. A special note is in place about a specific piece of
  69. information in the INI-files called 'PM_Workplace:Handles'.
  70. The workplace shell uses some obscure entity called
  71. object-handles to refer to objects. Object handles are infact
  72. numbers. A object-handle can refer to a abstract object (a
  73. object NOT on your harddisk e.g. the color palette) and 
  74. file-system objects (files & directories). 
  75.  
  76. Abstract objects reside in the ini-files. 
  77. File-system objects reside on your harddisk. 
  78.  
  79. Whenever you add a program object to your desktop and specify
  80. a programfile the workplace shell determines if a handle was
  81. already assigned to the programfile and if so, it uses this
  82. handle. If no handle was assigned, the shell creates a handle
  83. and assignes it to the programfile. In the definition of the
  84. program object (self an abstract object) the handle for the
  85. programfile is stored.
  86.  
  87. When you start the program by clicking on the object the wps
  88. must have a way to refer the stored handle back to the
  89. programfile. This is done by using the 'PM_Workplace:Handles'
  90. information. Unfortunately only handles are added to this
  91. information and they are not removed when a (program)file is
  92. removed from your harddisk.
  93.  
  94. In theory the total amount of handle-to-file information could
  95. grow to big and than without any warning you will loose
  96. information. The workplace shell than shows nonsence or
  97. nothing at all in some of your program objects.
  98.  
  99. CHECKINI allows you to remove handles for files or directories
  100. that are no longer present or inaccessable.
  101.  
  102.  
  103. If you have installed the october service pack (CSD Level
  104. XR06055) there has been a minor change in mechanisme described
  105. above. The workplace shell now keeps multiple versions of
  106. 'PM_Workplace:Handles' in the ini-files. Appearantly this is
  107. intended as a error-recovery mechanism. However, I've been
  108. unable to determine of the backup mechanism itself is
  109. implemented. As a result of this your OS2SYS.INI even grows more
  110. rapidly!
  111.  
  112.  
  113. ORPHAN OBJECTS
  114.  
  115. An wide spread way to remove undeleteable objects is to move
  116. them to a directory, and then, in a OS/2 or DOS session remove
  117. the directory. The Workplace shell than no longer shows the
  118. objects. They are infact NOT removed but they simply have no
  119. parent directory they will show in (no stool to sit on).
  120. Also, sometimes it is possible that suddenly several objects
  121. are lost. A reason for this could be a unintentional removal
  122. of a desktop directory.
  123.  
  124. CHECKINI detect these 'orphan objects' and queries to user
  125. (when /C specified) to move these objects to another (new)
  126. location. The moved objects will appear after the workplace
  127. shell has been restarted. (after a reboot!)
  128. If this question is answered with NO, another question is
  129. asked whether the objects should be removed from the
  130. ini-files.
  131.  
  132.  
  133. WARNING 1
  134.  
  135. if you are normally connected to a network and run CHECKINI
  136. when you are NOT connected to this network, or when you are
  137. not logged in, CHECKINI will report errors for references to
  138. network objects.
  139. In the situation mentioned above and with the /C switch given,
  140. take care when confirming deleting or correcting problems.
  141.  
  142. WARNING 2
  143.  
  144. Whenever you run CHECKINI with the /C switch you must be
  145. prepared to shutdown immediatly after you have run the
  146. program. This because the workplace shell has a lot of info in
  147. memory and it you keep on working some of the changes checkini
  148. has made will be overwritten by the desktop. 
  149.  
  150.  
  151.  
  152.  
  153. USING CHECKINI
  154.  
  155. From an OS/2 command prompt enter the command CHECKINI.
  156. Without any command line options CHECKINI doesn't change
  157. anything to your ini-files.
  158.  
  159. COMMAND LINE OPTIONS
  160.  
  161. /C             -    Write corrections to ini-files. The
  162.                     default is to diagnose only. If this
  163.                     option is specified the program will ask
  164.                     confirmations for all changes it may want
  165.                     to do in your ini-files.
  166.  
  167. /APath         -    Specify different location for ini-files
  168.                     to be checked. This option is usefull if
  169.                     you have a copy of you ini files and you
  170.                     would like these copies to be checked. 
  171.                     NOTE: Do NOT use this option to check ini-
  172.                     files not belonging to the PC you run
  173.                     CHECKINI on.
  174.  
  175. /Llogfilename  -    Specify name of logfile. The default is
  176.                     CHECKINI.LOG in the directory you start
  177.                     the program in.
  178.  
  179. /W             -    Write all output to logfile. Normally only
  180.                     problems are written to the logfile. This
  181.                     option could help you to inspect a lot
  182.                     about your workplace shell objects
  183.                     (actually workplace shell objects
  184.                     instances).
  185.  
  186. /S             -    'Silent run', only write logfile. Normally
  187.                     found errors are reported directly.
  188.  
  189. /?             -    Show info.
  190.  
  191.  
  192.  
  193. HOW THE PROGRAM WORKS
  194.  
  195. While running CHECKINI displays all found information on the
  196. screen. Whenever a problem is found, and the /S switch is not
  197. used the program reports the problem. The problem itself is
  198. visible in the bottom lines of the screen. Problems are always
  199. reported in CAPITALS.
  200.  
  201.  
  202. EXAMPLES of OUTPUT:
  203.  
  204. =================================================
  205.  PM_Workplace:Handles:BLOCK1                   
  206. =================================================
  207. 3E2DA:CHECKINI.EXE   =>E:\ICON\CHECKINI.EXE<-UNABLE TO ACCESS
  208. 395F8:COPYINI.EXE    =>E:\ICON\COPYINI.EXE<-UNABLE TO ACCESS
  209. 39400:GETPROG.EXE    =>E:\ICON\GETPROG.EXE<-UNABLE TO ACCESS
  210. =================================================
  211.  PM_Abstract:Objects & PM_Abstract:FldrContents
  212. =================================================
  213.   Object 13087, Class WPNetLink : A network folder
  214.    Linked to: \\SERVER09\SYS3\DIRECTORY1<-UNABLE TO ACCESS!
  215.   Object 140AD, Class WPNetLink : SYS3
  216.    Linked to: \\SERVER09\SYS3<-UNABLE TO ACCESS!
  217.   Object 15185, Class WPNetLink : SYS1
  218.    Linked to: \\SERVER09\SYS1<-UNABLE TO ACCESS!
  219.   Object 15956, Class WPNetLink : A network folder
  220.    Linked to: \\SERVER09\SYS3\DIRECTORY1<-UNABLE TO ACCESS!
  221. =================================================
  222.  Checking AssocCheckSum                          
  223. =================================================
  224. PMWP_ASSOC_CHECKSUM:252153
  225.   points to 3D8F9 - E:\ICON\GETBLOCK.EXE<-UNABLE TO ACCESS
  226. =================================================
  227.  Checking FolderPos                              
  228. =================================================
  229. PM_Workplace:FolderPos:252223@10
  230.   points to 3D93F - OBJECT DOES NOT EXIST
  231.  
  232.  
  233.  
  234. WHAT THE PROGRAM CHECKS
  235.  
  236. The following ini-records (Application - Key) are checked:
  237.  
  238. PM_Abstract:Objects     - (all keys)
  239. (Mainly checks WPProgram objects for consistency, but also
  240. checks for 'lost-objects' - objects moved to non-existing
  241. locations. Also checks WPNetLink and WPShadow links.)
  242.  
  243.  
  244. PM_Abstract:FldrContent - (all keys)
  245. (Used for the check mentioned above for 'lost-objects')    
  246.  
  247.  
  248. PM_Workplace:Handles[0/1] - BLOCK1 
  249. (Checks consistency and existence of filesystem object-handles)
  250.  
  251. PM_Workplace:Location   - (all keys)
  252. (Checks existence of object where id-strings like <WP_DESKTOP> point to)
  253.  
  254.  
  255. PM_Workplace:Folderpos  - (all keys)
  256. (Checks for obsolete saved object positions, fonts, etc)
  257.  
  258. PM_PrintObject:JobCnrPos - (all keys)
  259. (Checks for obsolete saved print job container positions)
  260.  
  261. PM_Workplace:PalettePos - (all keys)
  262. (Checks for obsolete saved palette positions, fonts, etc)
  263.  
  264. PM_Workplace:Templates  - (all keys)
  265. (Checks for template-records that refer to non-existing objects)
  266.  
  267.  
  268. PM_Abstract:Icons       - (all keys)
  269. (Checks for obsolete icons, icons for abstract objects that do
  270. not exist)
  271.  
  272. PMWP_ASSOC_FILTER       - (all keys)
  273. (Checks for associations with non-existing objects)
  274.  
  275. PMWP_ASSOC_TYPE         - (all keys)
  276. (Checks for associations with non-existing objects)
  277.  
  278. PMWP_ASSOC_CHECKSUM     - (all keys)
  279. (Checks for obsolete checksum record that point to
  280. non-existing objects)
  281.  
  282. PM_Workplace:Location   - (all keys)
  283. (Checks consistency of logical location names e.g.
  284. <WP_DESKTOP>)
  285.  
  286. PM_Workplace:Startup    - (all keys)
  287. (Checks if the referenced folders are infact startup folders)
  288.  
  289. FolderWorkareaRunningObjects - (all keys)
  290. (Checks for a list of open objects for a workarea)
  291.  
  292.                === Whats new in Checkini ? ===
  293.  
  294. Notes on version 1.1:
  295.  
  296. o  Some checks were added: 
  297.     PM_Workplace:PalettePos
  298.     PM_Workplace:Startup
  299.     Some other checkings were extended.
  300.  
  301. Notes on version 1.2:
  302.  
  303. o    The check for PM_Workplace:Handles was moved so that it
  304.      would be the last test done. 
  305.  
  306. o    The frase 'DOES NOT EXIST' for file objects (files &
  307.      directories) has been changed to 'UNABLE TO ACCESS' since
  308.      this is a beter description of what CHECKINI finds.
  309.  
  310. Notes on version 1.3:
  311.  
  312. o    The only extra in this version is that it support OS/2
  313.      2.00.1 (beta version) since in this version the internal
  314.      structure of various workplace shells object data has
  315.      changed.
  316.  
  317. Notes on version 1.4:
  318.  
  319. o    Not all the data checkini appearantly needs to exist. If
  320.      some data  checkini checks does not exist, the test is
  321.      skipped.
  322.  
  323. Notes on version 1.5:
  324.  
  325. o    Checkini now works properly after installing the
  326.      servicepack dated october 1992.
  327.  
  328. Notes on version 1.6:
  329.  
  330. o    Two additional tests were added. These test are for:
  331.      - 'FolderWorkareaRunningObjects' and 
  332.      - 'PM_PrintObject:JobCnrPos'
  333.  
  334. o    When a conflict in OBJECTID's is detected (two or more objects having
  335.      the same OBJECTID, CHECKINI /c can assign a new OBJECTID to the objects
  336.      that claim to have an OBJECTID that is already in use by another
  337.      object.
  338.  
  339. o    Updated the documentation files (this file)
  340.  
  341. o    A simple test has been build in to see if OBJECTID's can be found
  342.      in the ini-files, to determine if the internal data structure of the
  343.      ini-files might have been changed and CHECKINI will fail completely.
  344.      This is however no guarantee that CHECKINI will function properly on
  345.      new versions of OS/2 2.0.
  346.  
  347. Notes on version 1.7:
  348.  
  349. o    The 'simple test' mentioned above might block someone using CheckIni
  350.      if the ini-file itself is corrupt. Now the test is only performed when
  351.      /C (correct) switch is specified.
  352.  
  353. Notes on version 1.8:
  354.  
  355. o     When checking 'PM_Workplace:Handles' a test has been put in that 
  356.       checks the accessibility on a volume in one strike. 
  357.       If the user okays the removal of a non-locateable volume, all
  358.       handles on that volume are removed without further checking.
  359.  
  360. Notes on version 1.81:
  361.  
  362. o     Appearantly CheckIni went bananas whenever an alternate ini directory 
  363.       was specified and no ini's were found. This has been corrected.
  364.  
  365. o     Some minor enhancements were made to the text that is being shown on
  366.       the screen. These changes mainly have to do with signalling problems 
  367.       with OBJECTID's.
  368.  
  369. o     CheckIni refused to Change/Correct anything if the Desktop's 
  370.       Extended attributes have been damaged. 
  371.       CheckIni now offers a try-to-repair option.
  372.  
  373.       This option comes down to CheckIni re-assigning objectid <WP_DESKTOP>
  374.       to the desktop when CheckIni is unable to locate this ObjectId inside
  375.       the Desktop Extended Attributes. If this corrective action has been
  376.       taken CheckIni terminates and one should wait a view moments so 
  377.       the WPS has time to update the fysical extended attribute on disk.
  378.